#ifndef __DELAY_H
#define __DELAY_H

#include <stm32f4xx.h>

/*定义等待超时处理宏*/
extern volatile uint32_t __timeout_count; // 超时计数器
/*毫秒*/
#define WHILE_TIMEOUT_MS(condition, nms) \
for(__timeout_count = 0; condition; __timeout_count++) \
{ \
	if( __timeout_count >= (nms))
// 中间放超时的操作
#define WHILE_TIMEOUT_MS_END \
	delay_ms(1); \
}
/*微秒*/
#define WHILE_TIMEOUT_US(condition, nus) \
for(__timeout_count = 0; condition; __timeout_count++) \
{ \
	if( __timeout_count >= (nus))
// 中间放超时的操作
#define WHILE_TIMEOUT_US_END \
	delay_us(1); \
}

void sleep(void);            // 粗延时（软件延时，不精确）
void delay_ms(uint32_t nms); // 毫秒级延时
void delay_us(uint32_t nus); // 微秒级延时

#endif
